iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 19
0
Security

點錯遊戲的我也只好硬著頭皮上了 系列 第 19

[網頁漏洞] 資料庫漏洞-初探

  • 分享至 

  • xImage
  •  

08. Irish-Name-Repo 1

There is a website running at https://2019shell1.picoctf.com/problem/12273/ (link) or http://2019shell1.picoctf.com:12273. Do you think you can log us in? Try to see if you can login!
你能登入以下這個網站嗎? https://2019shell1.picoctf.com/problem/12273/

https://ithelp.ithome.com.tw/upload/images/20201003/20103688hUmsReyszS.png

HINT:

There doesn't seem to be many ways to interact with this, I wonder if the users are kept in a database?

WRITEUP:

從網頁左上角登入找到 Admin Login 後,隨便填入帳號密碼想當然而進不去。這時返回登入頁面並搭配開發者模式下的 “Elements” 頁面查看會發現送出去的資料中還有 debug 這個變數,我們直接改為 1 之後再登入一次看看。
https://ithelp.ithome.com.tw/upload/images/20201003/20103688yCLBKXIqnG.png

這一次頁面顯示了不一樣的東西,除了輸入的帳密外,還有資料庫的查詢語法(SQL)。
https://ithelp.ithome.com.tw/upload/images/20201003/20103688Ghft0fTlIF.png

加上原本的 HINT,暗示了這次的使用者已經不能再使用 cookie 方式修改進入,於是 google “sql query 漏洞”除了得知資料庫的漏洞正式名稱為 “ SQL Injection”外(之後的關鍵字搜尋),從範例中選擇其中一個可用的語法 'OR 1=1 -- 填入 Username:即可登入並解出 flag。

原本以為題目難度會先出如何修改 POST 的資料,想不到這麼快進入 SQL injection 的範圍...如果對資料庫不熟悉的玩家請自行多花費點時間在資料庫的概念上。例如找到的範例文章[Postx1] 攻擊行為-SQL 資料隱碼攻擊 SQL injection。簡而言之,SQL injection 是指在可輸入的資料中(例如帳號、密碼欄位、帶參數的網址等),我們輸入特殊的字串,例如資料庫本身的語法,或是特殊的指令等,讓伺服器端出現異常行為,進而獲取機密資料甚至取得控制權。

ANSWER:

picoCTF{s0m3_SQL_34865514}


上一篇
[網頁漏洞] User-Agent - 誰在敲門
下一篇
[網頁漏洞] 資料庫漏洞-換位思考
系列文
點錯遊戲的我也只好硬著頭皮上了 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言